The square of a number is desired by many applications in computers, signal processing, computer graphics, and computer arithmetic. In many of these applications, calculating an approximation of the square of a number meets the needs of the application. For example, take a number sampled by a 16-bit analog to digital converter that represents a value between zero and one. This could be represented as a 16-bit number with the radix point to the left of the most significant bit. Also, since this number has only sixteen bits of precision, then there are at most sixteen significant binary digits. When this number is squared, the result would be thirty-two bits long with the radix point still to the left of the most significant bit. However, because the result of the computation can be no more accurate than the least-accurate number in the data, at most sixteen of these bits are significant. The lower order sixteen bits should be rounded off. Because the lower order sixteen bits should be removed to round off the result to an appropriate number of significant binary digits, an approximation of the square of this number that produces the correct sixteen higher order bits can be a sufficient result.
Accordingly, a method and apparatus that produces an approximate square of a number in less time, and takes less area on an integrated circuit than calculating an exact square has broad need and application in the art.